Virtualization technologies have become widely used for sharing limited computer hardware resources. In a hardware virtualization environment, sometimes also referred to as a platform virtualization environment, one or more virtual machines can simulate a host computer with its own operating system. In particular, software executed on these virtual machines can be separated from the underlying hardware resources. As a result, virtual machines running on a same host computer can each have its own operating system. For example, a computer that is running Microsoft Windows operating system may host a virtual machine that simulates a computer running a Linux operating system, based on which Linux-based software can be executed.
A virtual machine can be a fully-virtualized virtual machine. A fully-virtualized virtual machine can have a guest operating system to allow executing of its software. While running on a host computer, a fully-virtualized virtual machine is unaware that it is a virtual machine. A fully-virtualized virtual machine is sometimes also referred as a Domain U or domU virtual machine. A domU virtual machine can be controlled by a control program of another virtual machine. The control program can also be referred to as a control operating system, a control domain, a Domain 0, or dom0. Thus, the virtual machine that runs the control operating system can be referred to as a dom0 virtual machine. In some embodiments, a dom0 virtual machine can have direct access to host computer's hardware resources and thus the control program can be executed by the host computer's operating system. In some embodiments, a dom0 virtual machine can have access to the host computer's hardware resources through a hypervisor that either runs directly on the host computer's hardware (i.e., a bare metal hypervisor) or runs within the host computer's operating system (i.e., a hosted hypervisor).
Virtual machines are often used to run graphical applications, such as applications for rendering and displaying 3-D graphical objects on the display device of the host computer. For displaying the 3-D graphical objects on the host computer, the current virtual machine technology often requires frequent copying of large amount of graphical data from the physical memory allocated for a domU virtual machine, on which the requesting application is running, to the physical memory allocated for a dom0 virtual machine that have access to the host computer's hardware resources, including Graphics Processing Units (GPUs), a graphic memory, and a display device. Frequent copying of large amount of graphical data, however, can cause significant degradation of the overall system performance, increased power consumption, and therefore overall reduction of efficiencies of utilizing the virtual machines.